package com.cykj.user.service;
import com.cykj.common.dto.ResponseDTO;
import com.cykj.common.entity.UserDO;
import com.cykj.user.vo.CareerExpectVO;
import com.cykj.user.vo.RecruitInfoVO;
import com.cykj.user.vo.UserVO;
import org.apache.ibatis.annotations.Param;


/**
 * @BelongsProject: smart_recruit_backend
 * @BelongsPackage: com.cykj.user.service
 * @Author: 浮行
 * @CreateTime: 2025-08-16 09:59
 * @Description: TODO
 * @Version: 1.0
 */
public interface IUserService {

    /**
    * @Description: 修改用户密码
    * @Param: [userVO]
    * @return: java.lang.Integer
    */
    ResponseDTO updatePassword(UserVO userVO);
    /**
     * @Description: 修改用户姓名,电话号码,年龄信息
     * @Param: [userVO]
     * @return: java.lang.Integer
     */
    ResponseDTO update(UserVO userVO);

    /**
     * @Description: 用户登录
     * @Param: [userVO]
     * @return: com.cykj.common.entity.UserDO
     */
    ResponseDTO login (UserVO userVO);
    /**
     * @Description: 获取临时数据
     * @Param: [userVO]
     * @return: com.cykj.common.entity.UserDO
     */
    ResponseDTO getEphemeralData(String token);



    

    ResponseDTO getPositionTypeAndFirst();

    ResponseDTO getJobsByTypeId(Integer jobTypeId);

    ResponseDTO getCountiesByProvinceId(Integer provinceId);

    ResponseDTO submitCareerExpectInfo(CareerExpectVO careerExpectVO);

    ResponseDTO submitUserInfo(UserVO userVO);

    ResponseDTO getCareerExpectByUserId(Integer userId);

    ResponseDTO getRegion(Integer regionId);

    ResponseDTO recommendedRecruit(RecruitInfoVO recruitInfoVO, Integer pageNum, Integer pageSize);

    ResponseDTO deleteCareerExpect(Integer expectId);

    ResponseDTO addCareerExpect(CareerExpectVO careerExpectVO);

    ResponseDTO updateCareerExpectationRegion(CareerExpectVO careerExpectVO);

    ResponseDTO updateCareerExpectationRegionIsNull(CareerExpectVO careerExpectVO);

    ResponseDTO getRecruitAndElse(Integer recruitId,Integer userId);

    ResponseDTO getCompanyInfoByCompanyId(Integer companyId);

    ResponseDTO search(String searchKeyword, Integer pageNum, Integer pageSize);

    ResponseDTO getInterview(Integer userId);

    ResponseDTO getInterviewDeta(Integer bookingId);

    ResponseDTO getOrderByUserId(Integer userId);

    ResponseDTO getOrderInfo(Integer orderId);

    ResponseDTO getJuLi(Double lat, Double lng, Integer companyId);

    ResponseDTO collectRecruit(Integer userId, Integer recruitId,Integer isNo);
}
